package com.woniu.zsd.platform.controller;


import com.woniu.zsd.common.util.JWTUtil;
import com.woniu.zsd.common.util.Result;
import com.woniu.zsd.platform.annotation.RequirePermission;
import com.woniu.zsd.platform.annotation.RequireRole;
import com.woniu.zsd.platform.service.AccountRoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author zhangtao
 * @since 2025年02月18日
 */
@RestController
@RequestMapping("/accountRole")
@Api(tags = "角色类接口")
public class AccountRoleController {
    @Resource
    private JWTUtil jwtUtil;
    @Resource
    private AccountRoleService accountRoleService;

    //给后台人员分配角色
    @PostMapping("/addRole")
    @ApiOperation("分配角色")
    @RequireRole({"超级管理员"})
    @RequirePermission("分配角色")
    public Result  addRole(Integer accountId,Integer roleId)throws Exception {
        accountRoleService.addRole(accountId,roleId);
        return Result.success("分配角色成功");
    }
    //删除后台人员的角色
    @PostMapping("/deleteRole")
    @ApiOperation("删除账号角色")
    @RequireRole({"超级管理员"})
    @RequirePermission("删除账号角色")
    public Result  deleteRole(@RequestHeader("token") String token,Integer roleId)throws Exception {
        Integer accountId = (Integer) jwtUtil.parseToken(token).get("accountId");
        accountRoleService.deleteRole(accountId,roleId);
        return Result.success("删除角色成功");
    }


}

